export declare type FunctionCallback<T> = (event: T) => void;
//无参回调
export declare type FunctionCallbackVoid = () => void;

//通道连接信息
export interface MsgConnectInfo {
    //通道用户ID
    UserId: string,
    //账号
    UserName: string
}

// 事件消息数据
export interface EventMessageData {
    //类型
    Type: string,
    //数据
    Message: string
}

/// <summary>
/// 系统通知数据
/// </summary>
export interface WebSystemNotificationData {
    /// <summary>
    /// 类型
    /// </summary>
    Type: number;
/// <summary>
/// 标题
/// </summary>
    Title: string;
/// <summary>
/// 内容
/// </summary>
    Message: string;
/// <summary>
/// 显示位置
/// </summary>
    Position: number;
/// <summary>
/// 显示时间, 单位为毫秒。 值为 0 则不会自动关闭
/// </summary>
    Duration: number
}

// 消息类型
export enum WebMessageType {
    //机器人上线
    RobotOnline = 0,
    //机器人离线
    RobotOffline = 1,
    //设备上线
    DeviceOnline = 2,
    //设备离线
    DeviceOffline = 3,
    //实时推送统计今日的数据
    StatisticInfoDay = 1000,
    // 实时推送统计今日的数据(小时节点更新)
    UpdateHourStatistic = 1001,
    // 更新账户API授权
    UpdateUserAuthorization = 2000,
    /// <summary>
    /// 通知信息发送到网页
    /// </summary>
    WebSystemNotification = 3000,
    /// <summary>
    /// 系统更新完成
    /// </summary>
    SystemUpdateComplete = 4000,
    /// <summary>
    /// 系统更新开始
    /// </summary>
    SystemUpdateStart = 4001,
}

// 订阅事件消息结果
export interface SubscribeEventMessageResult {
    // 取消订阅
    cancel(): void;
}
